# format文件系统大小
format = (size) ->
    if size >= 1024*1024*1024
        return (size/(1024*1024*1024)).toFixed(2) + ' GB'
    else if 1024*1024*1024 > size and size >= 1024*1024
        return (size/(1024*1024)).toFixed(2) + ' MB'
    else
        return (size/1024).toFixed(2) + ' KB'

# format文件系统大小
format_G = (size) ->
    if size >= 1
        return size.toFixed(2) + ' GB'
    else if 1 > size and size >= 1/1024
        return (size*1024).toFixed(2) + ' MB'
    else
        return (size*1024*1024).toFixed(2) + ' KB'

$ ->
    # 引入并解析window对象
    fs_size = JSON.parse(window.fs_size)

    # 基于准备好的dom，初始化echarts实例
    fssize_chart = echarts.init(document.getElementById('fs_size'))

    # 磁盘总容量
    total = 0
    for item in fs_size
        total += item.size
    format_total = format total

    # 指定图表的配置项和数据
    option = {
        title: {
            text: '文件系统使用情况',
            subtext: '磁盘总容量：' + format_total,
            subtextStyle: {
                color: 'blue'
            }
            x: 'center',
            padding: [0,0]
        },
        tooltip: {
            trigger: 'axis',
            axisPointer: {
                type: 'shadow'
            }
            # 提示框数据单位选择GB/MB/KB
            formatter: (params) ->
                used = format_G params[0].value
                free = format_G params[1].value
                return '挂载点：' + params[0].name + '<br/>' +
                        params[1].seriesName + '：' + free +
                        '<br/>' + params[0].seriesName + '：' + used
        },
        legend: {
            orient: 'vertical',
            x: 'left',
            data: ['剩余空间','已用空间']
        },
        # 图形距离容器上下左右的距离
        grid: {
            left: '3%',
            right: '15%',
            bottom: '3%',
            top: '25%',
            containLabel: true
        },
        xAxis: [ {
            type: 'category',
            name: '挂载点',
            data: []
        } ],
        yAxis: [ {
            type: 'value',
            name: 'GB'
        } ],
        series: [ {
            name: '已用空间',
            type: 'bar',
            stack: '文件系统',
            barCategoryGap: '30%',
            barWidth: '30px',
            itemStyle: {
                normal: {
                    color: '#AE0000'
                }
            },
            data:[]
        }, {
            name: '剩余空间',
            type: 'bar',
            stack: '文件系统',
            # 顶部标签显示
            label: {
                normal: {
                    show:true,
                    position:'top',
                    formatter: (params) ->
                        return "未知" if not fs_size[params.dataIndex]
                        total_size = format fs_size[params.dataIndex].size
                        return total_size
                }
            },
            itemStyle: {
                normal: {
                    color: '#00A600'
                }
            },
            data: []
        } ]
    }
    # 遍历fs_size，获取文件系统数据
    for item,index in fs_size
        option.xAxis[0].data[index]  = item.mount
        option.series[0].data[index] = item.used/(1024*1024*1024)
        option.series[1].data[index] = (item.size - item.used)/(1024*1024*1024)

    # 使用刚指定的配置项和数据显示图表
    fssize_chart.setOption(option)
